#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QFileDialog>
#include <QFile>
#include <QString>
#include <QImage>
#include <QSize>
#include <QtDebug>
#include <QMessageBox>
#include <QDialog>
#include <QPainter>
#include <QFont>
#include <QFontDialog>
#include <QColor>
#include <QColorDialog>
#include <QDialog>
#include "AboutDialog.h"
#include "DiagnosticDialog.h"
#include "ContentsDialog.h"

namespace Ui {
    class MainWindow;
}

class MainWindow : public QMainWindow {
    Q_OBJECT
public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();

protected:
    void changeEvent(QEvent *e);

private:
    Ui::MainWindow *ui;
    AboutDialog      aboutDialog;
    DiagnosticDialog diagnosticDialog;
    ContentsDialog   contentsDialog;
    QFile     srcFile, desFile;
    QString   srcFn, desFn;
    QString   srcToolTipStr, desToolTipStr;
    QImage    srcImg, desImg;
    QFont     desImgFont;
    QColor    desImgFontColor;
    QFileInfo srcFi, desFi;
    QByteArray rawdata;
    QString raw_comment_1;
    QString raw_comment_2;
    QString raw_header;
    QString raw_tabtab;
    QString raw_endline;
    QString raw_tail;
    QString raw_space;
    //QDialog DiagnosticDialog;
private slots:
    void ShowAboutDialog();
    void ShowDiagnosticDialog();
    void ShowContentsDialog();
    void on_watermarkColorBtn_clicked();
    void on_watermarkFontBtn_clicked();
    void on_watermarkSetBtn_clicked();
    void on_desImgBtn_clicked();
    void on_ImgPixSel_activated(QString );
    void on_DefaultBtn_clicked();
    void on_brightSlide_valueChanged(int value);
    void on_rotationSel_activated(QString );
    void on_reverseColorChk_clicked();
    void on_srcImgBtn_clicked();
    void ImgImport();
    void ImgExport();
    void ActionDeliver(QAction *);
    void ImgProcessBrightness();
//  void ImgProcessContrast();
    void ImgProcess();
    void ImgProcessRotation();
    void ImgProcessReverser();
    void ImgProcessResize();
    void ImgProcessBitsPixel();
    void ImgExporttoRawdata();
    void ImgExporttoMonochrome();
    void ImgExportto24bits();
    void ImgExportto32bits();
    void ImgExportto256Color();
    void ImgExportto4096Color();
    void ImgProcessWatermark();
//  void ImgNext();
//  void ImgPrevious();
//  void ImgFilelist();
//  void AboutBtnClick();
//  void Diagnostic();
};

#endif // MAINWINDOW_H
